package gptma.bo.dao.request;

import gptma.bo.dao.GenericDao;
import gptma.bo.model.request.ClientRequest;
import gptma.bo.model.request.RequestEvaluation;
import gptma.bo.model.request.RequestHistoryElement;
import gptma.bo.model.task.Task;
import gptma.bo.search.ClientRequestSearchCriteria;

import java.util.List;

public interface ClientRequestDao extends GenericDao<ClientRequest, Long> {

	List<ClientRequest> findNonAttached();

	List<String> completeRequestReference(String partialReference);

	List<ClientRequest> findByCriteria(ClientRequestSearchCriteria criteria);

	List<ClientRequest> findNewRequests(int number);

	List<ClientRequest> findNewRequestsFiltered(int dayNumber);

	List<Task> findTasks(ClientRequest clientRequest);

	ClientRequest findByReference(String reference);

	RequestEvaluation findEvaluation(ClientRequest clientRequest);

	List<RequestHistoryElement> findClientHistory(ClientRequest clientRequest);

}
